const fs = require('fs');//文件系统模块
const path = require('path')
// console.log(fs)

// console.log('工作目录',process.cwd())//获取当前工作目录， 现在打开的文件夹
// console.log( __dirname )//获取当前文件夹所处位置的绝对路径


//异步读取文件,因为是异步所以函数,相对于当前工作目录,调用函数之后告诉你读取成功或者失败
// fs.readFile(`${__dirname}/1.txt`),function (err,rej) {
// fs.readFile(path.join(__dirname,'/1.txt'),function (err,rej) {
//     console.log('err',err)
//     console.log('rej',rej.toString())
//     //在node里面都是js写法
//     if(err){
//         console.log('读取失败')
//     }else{
//         console.log( rej.toString() )
//     }
// })
//同步读取文件会阻塞后面的进程
//  const res = fs.readFileSync(path.join(__dirname,'/1.txt'))
//  console.log('res',res.toString())

//  console.log('999')
//异步写入文件,有回调,如果直接通过这种方式写入内容会覆盖之前的内容   支持转义字符
// fs.writeFile( path.join(__dirname,'/1.txt'),'修改之后的内容\n下一行内容',(error,data) => {
//    if(error){
//        console.log('写入失败')
//    }else{
//     console.log('success')
//    }
// } )//写入文件
//异步回调地狱
// fs.readFile( path.join(__dirname,'/1.txt'), (err,rej) => {
//     if(err){
//         console.log('1读取失败')
//     }else{
//         console.log( rej.toString() )
//         fs.readFile( path.join(__dirname,'/2.txt'),(err,data) => {
//             if(err){
//                 console.log('2读取失败')
//             }else{
//                 fs.writeFile( path.join(__dirname,'/3.txt'),rej.toString() + data.toString(), (e,d) => {
//                     if(e){
//                         console.log('写入失败')
//                     }else{
//                      console.log('success')
//                     }
//                  })
//             }
//         })
//     }
// })


function set(res,data,val) {
    return new Promise( function (resolve, reject) {
        res( path.join( __dirname,data), (err,rej) => {
                if(err){
                    err(new Error())
                }else{
                    resolve( rej.toString() )
            }
        })
    })
}
    set(fs.readFile,'/1.txt')
    .then( (res1)=>{//接受成功的回调
        console.log('res1',res1);
        return set(fs.readFile,'/2.txt')
    })
    .then( (res2) => {
        console.log('res2',res2)
        // fs.writeFile,'/3.txt'
    } )

